- From: Ian Jacobs <ij@w3.org>
- Date: Thu, 17 May 2001 20:55:46 -0400
- To: w3c-wai-ua@w3.org, STotman1@aol.com, timla@microsoft.com, schwer@us.ibm.com
Hello,
Per my action item from the 16 May teleconference [1], please
consider this proposal for changes to some of the checkpoints in
Guideline 6. This proposal intends to address issues 471 [2], 472
[3], and 480 [4].
Tim, Rich, Scott: Please indicate your support for this proposal.
[1] http://lists.w3.org/Archives/Public/w3c-wai-ua/2001AprJun/0161
[2] http://server.rehab.uiuc.edu/ua-issues/issues-linear-lc3.html#471
[3] http://server.rehab.uiuc.edu/ua-issues/issues-linear-lc3.html#472
[4] http://server.rehab.uiuc.edu/ua-issues/issues-linear-lc3.html#480
Reference document: 11 April 2001 draft:
http://www.w3.org/WAI/UA/WD-UAAG10-20010411/
------------
Introduction
------------
The proposal attempts to provide answers to the following
questions in a clear and consistent manner:
a) What is a "standard" API?
b) Which is more important: implementing some API, or
implementing a standard API?
c) What happens when there is no standard API?
d) What happens when the API doesn't meet the developer's needs?
e) What happens when the developer has an API that is "better"
than the standard API? Should conformance be possible when
the user agent implements a better API?
I list all of these questions because they have all been asked at
one time or another. They also may make good FAQ questions.
At the 16 May teleconference, the Working Group renewed their
commitment to requiring standard APIs as a way of ensuring
interoperability. However, the WG moved in the direction of
acknowledging the following hierarchy of API preferences:
1) Prefer an API that has been standardized (e.g., by W3C).
The WG distinguished a standard API that is "broken" from
one that is non-standard. The WG has said that it's fine to
work around the former, but that if there is an API and
it's not broken, it's preferred over a non-standard API.
2) Otherwise, prefer an API that enables interoperability by
having at least the following characteristics:
a) It is publicly documented
b) More than one assistive technology may use it
for interaction with a conforming user agent.
3) Otherwise, there is a risk that the API will not
meet our expectations of ensuring that assistive technology
developers will have available and robuts APIs, or that
the cost of developing to N different APIs will be prohibitive.
(For more arguments, refer to email from Rich [5] and Tim [6]).
Note: The WG recognizes that user agents and assistive
technologies may already be deployed having implemented APIs
that do not satisfy the interoperability requirements of this
document. Specific user agent/AT combinations may provide
accessible solutions for some users today (and that's good),
but if the user agent doesn't satisfy the requirements of
Guideline 6, it does not meet the WG's expectations about
interoperability and the desirability of having a choice of
assistive technologies.
[5] http://lists.w3.org/Archives/Public/w3c-wai-ua/2001AprJun/0132
[6] http://lists.w3.org/Archives/Public/w3c-wai-ua/2001AprJun/0156
------------------------
1) Definition of "standard API"
------------------------
A "standard API" is a publicly documented API that is the result
of a standards process (e.g., the W3C Recommendation track). For
the purposes of this document "de facto standards" and
proprietary operating environment APIs do not qualify as standard
APIs.
<DELETE from definition of API>
As part of encouraging interoperability, this document recommends
using standard APIs where possible, although this document does
not define in all cases how those APIs are standardized (i.e.,
whether they are defined by specifications such as W3C
Recommendations, defined by an operating environment vendor, de
facto standards, etc.).
</DELETE from definition of API>
Comment: The above definition may sound like a dramatic change,
but as the checkpoint below reveal, it is only one of definition.
----------------------------
2) Changes to G6 checkpoints
----------------------------
Summary: Guideline 6 checkpoints can be organized as follows
(and this might be useful in the Guideline prose):
a) What information must be made available through an API.
b) Which APIs must be used to provide this information.
c) Constraints on providing this information.
More specifically:
a) What information must be made available through an API:
- HTML and XML content (6.1, 6.2)
- Non-HTML/XML markup content (6.3)
- CSS content when CSS implemented (6.9)
- User interface controls (6.4)
- Changes to content and user interface controls (6.5)
Note: Write access is always limited to what the user can do
through the UI anyway.
b) Which APIs must be used to provide this information:
b1) For HTML, XML, and CSS, use the DOM (6.1, 6.2, and 6.9)
b2) Otherwise, use
- Standard APIs or APIs designed to benefit accessibility (6.6)
- Standard input and output APIs (6.6), and specifically
the standard keyboard APIs (6.7)
c) Constraints on providing information through an API:
- Support character encodings (6.8)
- Exchange information in a timely manner (6.10)
Please consider the following reorganization based on this model
and our discussions. There are no changes proposed for
checkpoints 6.1, 6.2, 6.8, 6.9, and 6.10.
<NEW 6.3>
For markup languages other than HTML and XML, provide
programmatic read access to content. Provide programmatic
write access for those parts of content that the user can
modify through the user interface. Content only.
</NEW 6.3>
<NEW 6.4>
Provide programmatic read access to user agent user interface
controls. Provide programmatic write access to those controls
of the user agent user interface that the user can modify
through the user interface. For security reasons, user agents
are not required to allow instructions in content to modify user
agent user interface controls. User agent only.
Note: This checkpoint is designed to enable users to interact
with the user agent user interface controls through assistive
technologies.
</NEW 6.4>
<NEW 6.5>
Provide programmatic alert of changes to content, user interface
controls, selection, content focus, and user interface focus.
Both content and user agent.
</NEW 6.5>
<DELETE 6.6>
Refer to new 6.X below.
</DELETE 6.6>
<NEW 6.X>
To satisfy the requirements of each checkpoint 6.3, 6.4, and
6.5, implement at least one API that is either (a) a standard
API or (b) one designed to enable interoperability with
assistive technologies. If neither type of API is available, or
if available APIs do not enable the user agent to satisfy the
requirements of the checkpoint, implement at least one publicly
documented API to satisfy the requirements of the checkpoint
<em>and</em> follow operating environment conventions for
the use of input and output APIs.
Note: User agents should follow operating environment
conventions for the use of input and output APIs in all
cases.
</NEW 6.X>
Comment: This proposal differs slightly from our discussion at
the teleconference.
- The old checkpoint 6.6 has been folded into this one. It
considers standard APIs on par with ones designed to promote
interoperability with assistive technologies. Thus, to satisfy
checkpoint 6.5, a user agent could provide alert of changes
through either the DOM Events API or MSAA.
- The checkpoint does not talk about how APIs satisfy "the
requirements of the document" because the API requirements we
are talking about are all in checkpoints 6.3, 6.4, and 6.5. The
other requirements outside of Guideline 6 are meant to be
satisfied through the UI, through config files, on the Web
(documentation), etc. but NOT through APIs. This, in my opinion,
tightens up the document significantly.
- The second part of the checkpoint does not talk about
the publicly documented APIs having to enable interoperability
since that's now covered by the first part of the checkpoint.
<NEW 6.7>
Follow operating environment conventions when implementing
APIs for the keyboard.
Note: Operating environment conventions may require more than
one API for the keyboard. For instance, for Japanese and
Chinese, input may be processed in two stages, with an API
for each.
</NEW 6.7>
----------------------------
3) Changes to conformance
----------------------------
To section 3.6 "Well-formed conformance claims", add two
requirements:
- The claim must indicate which APIs are used to satisfy the
checkpoints of Guideline 6.
- The claim must indicate which formats are used to satisfy the
checkpoints (both for content labels and Guideline 8). Note:
This second requirement was not discussed at the teleconference,
but I recall it here since it is part of another proposal.
----------------------------
4) Techniques
----------------------------
I think that in the Techniques Document we *must* be able to
provide an example of an API that would satisfy checkpoints 6.3,
6.4, and 6.5. For example:
6.3: ?? Help!
6.4: On Windows, MSAA. For Java, Java Access API.
6.5: On Windows, MSAA. Or the DOM Events model.
6.X: Any DOM API, MSAA, Java Access API, others?
Please make additional suggestions!
--
Ian Jacobs (ij@w3.org) http://www.w3.org/People/Jacobs
Tel: +1 831 457-2842
Cell: +1 917 450-8783
Received on Thursday, 17 May 2001 20:56:02 UTC